package com.vmladenov.cook.core.adapters;

import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.vmladenov.cook.R;
import com.vmladenov.cook.core.Helpers;
import com.vmladenov.cook.core.html.SmallPreview;

public class SmallPreviewListAdapter extends ArrayAdapter<SmallPreview>
{
	// Handler handler = new Handler();
	// protected LinkedList<SmallImageResoulveMessage> list = new
	// LinkedList<SmallImageResoulveMessage>();
	//
	// protected Thread consumer1 = new Thread(new Runnable() {
	//
	// @Override
	// public void run()
	// {
	// consume();
	// }
	// });
	//
	// protected Thread consumer2 = new Thread(new Runnable() {
	//
	// @Override
	// public void run()
	// {
	// consume();
	// }
	// });
	//
	// protected Thread consumer3 = new Thread(new Runnable() {
	//
	// @Override
	// public void run()
	// {
	// consume();
	// }
	// });
	//
	// protected Thread consumer4 = new Thread(new Runnable() {
	//
	// @Override
	// public void run()
	// {
	// consume();
	// }
	// });
	//
	// protected void consume()
	// {
	// synchronized (list)
	// {
	// while (true)
	// {
	// try
	// {
	// list.wait();
	// }
	// catch (InterruptedException e)
	// {
	// return;
	// }
	// if (list.size() > 0)
	// {
	// final SmallImageResoulveMessage message = list.removeLast();
	// final Bitmap bitmap =
	// Helpers.getSmallImage(message.imageView.getContext(),
	// message.preview.getImageUrl());
	// handler.post(new Runnable() {
	//
	// @Override
	// public void run()
	// {
	// message.imageView.setImageBitmap(bitmap);
	// message.preview.setCachedImage(bitmap);
	// }
	// });
	// }
	// }
	// }
	// }

	public SmallPreviewListAdapter(Context context, List<SmallPreview> objects)
	{
		super(context, R.layout.small_list_view, objects);
		// consumer1.start();
		// consumer2.start();
		// consumer3.start();
		// consumer4.start();
	}

	public View getView(int position, View convertView, ViewGroup parent)
	{
		View v = convertView;
		if (v == null)
		{
			LayoutInflater vi = (LayoutInflater) getContext().getSystemService(
					Context.LAYOUT_INFLATER_SERVICE);
			v = vi.inflate(R.layout.small_list_view, null);
		}

		SmallPreview preview = getItem(position);
		if (preview != null)
		{
			TextView title = (TextView) v.findViewById(R.id.txtTitle);
			ImageView image = (ImageView) v.findViewById(R.id.smallImage);
			TextView tvDescription = (TextView) v.findViewById(R.id.txtAddedOn);
			title.setText(preview.getTitle());
			if (preview.getDescription() != null)
				tvDescription.setText(preview.getDescription());
			else
			{
				tvDescription.setVisibility(View.INVISIBLE);
			}
			if (preview.getCachedImage() != null)
				image.setImageBitmap(preview.getCachedImage());
			else if (preview.getImageUrl() != null)
			{
				// synchronized (list)
				// {
				// SmallImageResoulveMessage message = new
				// SmallImageResoulveMessage();
				// message.imageView = image;
				// message.preview = preview;
				// list.addFirst(message);
				// list.notifyAll();
				// }
				Helpers.setImageInPreviewAndStoreAsync(image, preview);
			}
			v.setTag(preview);
		}

		return v;
	}

	public void interuptConsumers()
	{
		// consumer1.interrupt();
		// consumer2.interrupt();
		// consumer3.interrupt();
		// consumer4.interrupt();
	}
}
